Een generieke lijst serialiseren naar CSV
Om de datastructuur, een generieke lijst, te serialiseren moeten we deze datastructuur omzetten naar een string (een array of chars).
Stappenplan
- We beginnen met een methode te maken met de naam
SerializeObjectToCsv(List<Postcode> list, string separator)in klasseTryOutin de namespaceDotNetCore.Learningin het Learning.cs bestand. Deze methode aanvaardt twee parameters:- de te serialiseren generieke lijst;
- een string waarvan de waarde als onderscheidingsteken in het csv bestand wordt gebruikt;
public static string SerializeObjectToCsv(List<Postcode> list, string separator) { string fileName = @"Data/Postcodes2.csv"; string message; try { TextWriter writer = new StreamWriter(fileName); foreach (Postcode item in list) { // One of the most versatile and useful additions to the C# language in version 6 // is the null conditional operator ?. writer.WriteLine("{0}{5}{1}{5}{2}{5}{3}{5}{4}", item?.Code, item?.Plaats, item?.Provincie, item?.Localite, item?.Province, separator); } message = $"Het bestand met de naam {fileName} is gemaakt!"; } catch (Exception e) { // Melding aan de gebruiker dat iets verkeerd gelopen is. // We gebruiken hier de nieuwe mogelijkheid van C# 6: string interpolatie message = $"Kan het bestand met de naam {fileName} niet maken.\nFoutmelding {e.Message}."; } return message; } - We proberen deze methode uit in de
mainmethode van deProgramklasse in het bestand Program.cs:using System; namespace DotNetCore.Learning { class Program { static void Main(string[] args) { Console.WriteLine(TryOut.SerializeObjectToCsv(TryOut.GetPostcodeList(), "|")); Console.ReadKey(); } } } - En dat is het resultaat, het bestand is met de postcodes voorgesteld als csv is gemaakt:
Visual Studio CSV Serializer Test Result
2020-10-23 09:06:43